package com.cherish.screen.db.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName
 * @Author cherish
 * @Date 2019/11/28
 * @Description TODO
 */
@Data
public class ExceptionLog implements Serializable {

    private static final long serialVersionUID = -339516038496531943L;

    private Long id;// 自增ID
    private String appId;// 当前使用插件的系统代号
    private String version;// 插件版本
    private String pageName;// 一个界面产生一个requestId
    private String traceId;// 一个阶段产生一个traceId，用于追踪和一个异常相关的所有日志记录
    private String hash;// 这条log的唯一标识码，相当于logId，但它是根据当前日志记录的具体内容而生成的
    private Integer sendEmail;// 发送邮件，默认不发送邮件（1发送0不发送）
    private Integer userStatus;// 当时，用户状态信息（是否可用/禁用）
    private String userRoles;// 当时，前用户的角色列表
    private String userGroups;// 当时，用户当前所在组，组别权限可能影响结果
    private String userLicenses;// 当时，许可证（sessionID），可能过期
    private String userId;// 当前系统用户ID
    private String path;// 所在路径，URL
    private String action;// 进行了什么操作
    private String referer;// 上一个路径，来源URL
    private String prevAction;// 上一个操作
    private String data;// 当前界面的state、data
    private String dataSources;// 上游api给了什么数据
    private String dataSend;// 提交了什么数据
    private String targetElement;// 用户操作的DOM元素
    private String targetDOMPath;// 该DOM元素的节点路径
    private String targetCSS;// 该元素的自定义样式表
    private String targetAttrs;// 该元素当前的属性及值
    private String errorType;// 错误类型
    private String errorLevel;// 异常级别
    private String errorStack;// 错误stack信息
    private String errorFilename;// 出错文件
    private Long errorLineNo;// 出错行
    private Long errorColNo;// 出错列位置
    private String errorMessage;// 错误描述（开发者定义）
    private String eventType;// 事件类型
    private Long pageX;// 事件x轴坐标
    private Long pageY;// 事件y轴坐标
    private Long screenX;// 事件x轴坐标
    private Long screenY;// 事件y轴坐标
    private String eventKey;// 触发事件的键
    private String device;// 设备描述
    private String screenshot;// 报错页面截图BASE64image
    private Date time;// 当前日志产生的时间（保存时刻）
    private Long errorTimeStamp;// 时间戳
    private Long pageW;// 页面宽度
    private Long pageH;// 页面高度
    private Long screenW;// 屏幕宽度
    private Long screenH;// 屏幕高度
    private String network;// 网络环境描述
    private String userAgent;// 客户端描述
    private String system;// 操作系统描述
    private String appName;// 用户操作当前网站的应用名称
    private String appVersion;// 用户操作当前网站的应用版本
}
